﻿package com.d4p.iterator
{
	public interface IFCollection extends IFAggregate
	{
		function clear():void;
		function isEmpty():Boolean
		
		function addItem(item:*):Boolean;
		function addItemAt(item:*, idx:uint):int
		function push(...args:*):uint;
		function unshift(...args:*):uint;
		
		function replaceWith(item:*, idx:uint):int;
		function removeItem(item:*):Boolean;
		function removeItemAt(idx:uint):*;
		function pop():*;
		function shift():*;
		
		function contains(item:*):Boolean		
		function getItemAt(idx:uint):*;
		function getLength():uint;
		function getIndex(item:*):int;
		
		function concat(...args):IFCollection;
		function suffle():void;
		function reverse():void;		
		function rotateForward(item:*=null, idx:uint=0):void;
		function rotateRewind(item:*=null, idx:uint=0):void;
		function bringToFront(item:*):Boolean
		function sendToBack(item:*):Boolean;
		
		function removeSameItem():void;
		
		function split(item:*):Object;
		
		
		/*
		function bringToFrontAsRF(item:*):void;
		function bringToFrontAsRR(item):void;
		function sendToBackAsRF():void;
		function sendToBackAsRR():void;
		*/
	}
}